from multiprocessing import Pool
import time


def work(n):
    print('我们在上课')
    time.sleep(2)
    return n * 3


if __name__ == '__main__':
    # 定义一个进程池，最大的进程数是3
    p = Pool(3)
    list1 = []
    for i in range(6):
        # 异步：进程不需要一直等下去，而是继续执行下面的操作，不管其他的进程状态
        res = p.apply_async(work, args=(i,))
        print(res)
        list1.append(res)

    # 关闭进程池
    p.close()
    # 等待进程池中所有进程执行完毕，必须放在close()之后
    p.join()
    for i in list1:
        print(i.get())
